[INFO] cloning repository https://github.com/xnoe/rust-calc
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xnoe/rust-calc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxnoe%2Frust-calc", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxnoe%2Frust-calc'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 056ddab0af375776307d7f858e71defa63891c25
[INFO] checking xnoe/rust-calc against master#4eb62535fc12dd1a63fd43a4173e224e79313c4d for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxnoe%2Frust-calc" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/xnoe/rust-calc
[INFO] finished tweaking git repo https://github.com/xnoe/rust-calc
[INFO] tweaked toml for git repo https://github.com/xnoe/rust-calc written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xnoe/rust-calc on toolchain 4eb62535fc12dd1a63fd43a4173e224e79313c4d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/xnoe/rust-calc already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56
[INFO] running `Command { std: "docker" "start" "e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking itertools v0.10.3
[INFO] [stderr]     Checking calculator v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:687:21
[INFO] [stdout]     |
[INFO] [stdout] 687 |                 let mut rval = None;
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/main.rs:665:38
[INFO] [stdout]     |
[INFO] [stdout] 665 |             AST::FunctionDef(symbol, params, block) => {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotEquals` is never constructed
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | enum Token {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 77 |     NotEquals,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_tokens` is never used
[INFO] [stdout]    --> src/main.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn print_tokens(tokens: &Vec<Token>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/main.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |     Dot(Box<AST>, Box<AST>),
[INFO] [stdout]     |     --- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 225 -     Dot(Box<AST>, Box<AST>),
[INFO] [stdout] 225 +     Dot((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/main.rs:230:20
[INFO] [stdout]     |
[INFO] [stdout] 230 |     WhileStatement(Box<AST>, Box<AST>),
[INFO] [stdout]     |     -------------- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 230 -     WhileStatement(Box<AST>, Box<AST>),
[INFO] [stdout] 230 +     WhileStatement((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/main.rs:231:18
[INFO] [stdout]     |
[INFO] [stdout] 231 |     ForStatement(Box<AST>, Box<AST>, Box<AST>, Box<AST>),
[INFO] [stdout]     |     ------------ ^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 231 -     ForStatement(Box<AST>, Box<AST>, Box<AST>, Box<AST>),
[INFO] [stdout] 231 +     ForStatement((), (), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/main.rs:232:17
[INFO] [stdout]     |
[INFO] [stdout] 232 |     IfStatement(Box<AST>, Box<AST>),
[INFO] [stdout]     |     ----------- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 232 -     IfStatement(Box<AST>, Box<AST>),
[INFO] [stdout] 232 +     IfStatement((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `String` is never constructed
[INFO] [stdout]    --> src/main.rs:502:5
[INFO] [stdout]     |
[INFO] [stdout] 498 | enum Value {
[INFO] [stdout]     |      ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 502 |     String(String)
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Value` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `truthy` is never used
[INFO] [stdout]    --> src/main.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 509 | impl<'a> Interpreter<'a> {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 527 |     fn truthy(v : Value) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:737:13
[INFO] [stdout]     |
[INFO] [stdout] 737 |             std::io::stdout().flush();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 737 |             let _ = std::io::stdout().flush();
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:687:21
[INFO] [stdout]     |
[INFO] [stdout] 687 |                 let mut rval = None;
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `params`
[INFO] [stdout]    --> src/main.rs:665:38
[INFO] [stdout]     |
[INFO] [stdout] 665 |             AST::FunctionDef(symbol, params, block) => {
[INFO] [stdout]     |                                      ^^^^^^ help: if this is intentional, prefix it with an underscore: `_params`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NotEquals` is never constructed
[INFO] [stdout]   --> src/main.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | enum Token {
[INFO] [stdout]    |      ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 77 |     NotEquals,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_tokens` is never used
[INFO] [stdout]    --> src/main.rs:191:4
[INFO] [stdout]     |
[INFO] [stdout] 191 | fn print_tokens(tokens: &Vec<Token>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/main.rs:225:9
[INFO] [stdout]     |
[INFO] [stdout] 225 |     Dot(Box<AST>, Box<AST>),
[INFO] [stdout]     |     --- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 225 -     Dot(Box<AST>, Box<AST>),
[INFO] [stdout] 225 +     Dot((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/main.rs:230:20
[INFO] [stdout]     |
[INFO] [stdout] 230 |     WhileStatement(Box<AST>, Box<AST>),
[INFO] [stdout]     |     -------------- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 230 -     WhileStatement(Box<AST>, Box<AST>),
[INFO] [stdout] 230 +     WhileStatement((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, `2`, and `3` are never read
[INFO] [stdout]    --> src/main.rs:231:18
[INFO] [stdout]     |
[INFO] [stdout] 231 |     ForStatement(Box<AST>, Box<AST>, Box<AST>, Box<AST>),
[INFO] [stdout]     |     ------------ ^^^^^^^^  ^^^^^^^^  ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 231 -     ForStatement(Box<AST>, Box<AST>, Box<AST>, Box<AST>),
[INFO] [stdout] 231 +     ForStatement((), (), (), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]    --> src/main.rs:232:17
[INFO] [stdout]     |
[INFO] [stdout] 232 |     IfStatement(Box<AST>, Box<AST>),
[INFO] [stdout]     |     ----------- ^^^^^^^^  ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     fields in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AST` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]     |
[INFO] [stdout] 232 -     IfStatement(Box<AST>, Box<AST>),
[INFO] [stdout] 232 +     IfStatement((), ()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `String` is never constructed
[INFO] [stdout]    --> src/main.rs:502:5
[INFO] [stdout]     |
[INFO] [stdout] 498 | enum Value {
[INFO] [stdout]     |      ----- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 502 |     String(String)
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Value` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `truthy` is never used
[INFO] [stdout]    --> src/main.rs:527:8
[INFO] [stdout]     |
[INFO] [stdout] 509 | impl<'a> Interpreter<'a> {
[INFO] [stdout]     | ------------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 527 |     fn truthy(v : Value) -> bool {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/main.rs:737:13
[INFO] [stdout]     |
[INFO] [stdout] 737 |             std::io::stdout().flush();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 737 |             let _ = std::io::stdout().flush();
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.34s
[INFO] running `Command { std: "docker" "inspect" "e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56", kill_on_drop: false }`
[INFO] [stdout] e1101e40990da730409fbc56303515a74bd905a65074a05e7aa1d96887e7ac56
